﻿//////////////////////////////////////////////////////////////////////////////
//
//  Copyright © 1998-2024 Glodon Company Limited.  All rights reserved.
//
//  Use of this software is subject to the terms of the Glodon license
//  agreement provided at the time of installation or download, or which
//  otherwise accompanies this software in either electronic or hard copy form.  
//
//////////////////////////////////////////////////////////////////////////////


#pragma once
#include "GnufBase.h"

namespace gnuf {
    class IProjectDisplay;

    class GNUF_BASE_EXPORT IDisplayManager : public gcmp::WeakReferenceable
    {
        DEFINE_CAST_BASE(IDisplayManager)

    public:
        static IDisplayManager* get();
    protected:
        explicit IDisplayManager();
        virtual ~IDisplayManager();
    public:
        virtual void onSetShowingAll(bool) = 0;
        virtual bool onIsShowingAll() const = 0;
        virtual std::list<IProjectDisplay *> onGetAllProjectDisplays() = 0;
        virtual IProjectDisplay* onGetActiveProjectDisplay() = 0;
        virtual IProjectDisplay* onGetProjectDisplayToTile() = 0;
    };
}
